Apparatuses, methods, and computer program products for multi-step installed application program snapshot processing

ABSTRACT

Embodiments are provided that improve data processing and determinations therefrom utilizing multiple steps of processing installed application program snapshots. Such embodiments improve actions and/or determinations derived from changes between the installed application program snapshots. Some example embodiments generate an application program characteristic set for each application program of a first installed application program set, generate a profile category set based at least in part on the application program characteristic set, retrieve an updated installed application list indicating a second installed application program set, determine at least one uninstalled application based on a comparison of the first installed application program set and the second installed application program set, generate a second application program characteristic set associated with the at least one uninstalled application, and update the profile category set based on the second application program characteristic set associated with the at least one uninstalled application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 14/207,399, filed Mar. 12, 2014, titled “Method And System For Distribution Of Application Program For Promotion And Marketing Service,” the contents of which is incorporated by reference herein in their entirety.

TECHNOLOGICAL FIELD

Example embodiments of the present invention relate generally to promotion management and, more particularly, to providing impressions of promotions to consumers using mobile computing devices.

BACKGROUND

Via electronic networks (e.g., the Internet), promotional systems provide promotions associated with merchants to consumer devices. Certain promotional and marketing services notify consumers about promotions via the consumers' mobile computing devices. In this regard, areas for improving current mobile promotion notification techniques have been identified and technical solutions have been implemented in exemplary embodiments.

BRIEF SUMMARY

In accordance with one exemplary embodiment, a computer-executed method is provided for detecting application programs on a mobile computing device. The method includes initiating, using a promotion application program installed on a mobile computing device, a plurality of mobile software program communication requests in order to detect one or more additional application programs installed on the mobile computing device, the promotion application program associated with a promotion and marketing service. The method also includes programmatically generating, within the promotion application program, an indication of the one or more additional application programs installed on the mobile computing device.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method for detecting application programs on a mobile computing device. The method includes initiating, using a promotion application program installed on a mobile computing device, a plurality of mobile software program communication requests in order to detect one or more additional application programs installed on the mobile computing device, the promotion application program associated with a promotion and marketing service. The method also includes programmatically generating, within the promotion application program, an indication of the one or more additional application programs installed on the mobile computing device.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a storage device for storing one or more computer-executable instructions for programmatically executing a promotion application program, and one or more computer-executable instructions for programmatically executing one or more additional application programs. The mobile computing device also includes a processing device configured to programmatically execute the promotion application program to initiate a plurality of mobile software program communication requests in order to detect the one or more additional application programs installed on the mobile computing device, wherein execution of the promotion application program generates, within the promotion application program, an indication of the one or more additional application programs installed on the mobile computing device.

In accordance with another exemplary embodiment, a computer-executed method is provided for determining profile data of a user of a promotion application program on a mobile computing device. The method includes programmatically receiving, from a promotion application program running on a mobile computing device, an indication of one or more additional application programs installed on the mobile computing device. The method also includes programmatically determining a characteristic of a first application program within the one or more additional application programs. The method also includes based on the characteristic of the first application program, programmatically generating a first profile data characteristic of a user of the mobile computing device. The method further includes storing the first profile data characteristic associated with the user of the mobile computing device on a non-transitory storage device.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for a method for determining profile data of a user of an application program on a mobile computing device. The method includes programmatically receiving, from a promotion application program running on a mobile computing device, an indication of one or more additional application programs installed on the mobile computing device. The method also includes programmatically determining a characteristic of a first application program within the one or more additional application programs. The method also includes, based on the characteristic of the first application program, programmatically generating a first profile data characteristic of a user of the mobile computing device. The method further includes storing the first profile data characteristic associated with the user of the mobile computing device on a non-transitory storage device.

In accordance with another exemplary embodiment, a computing device is provided. The computing device includes a network device configured to receive, from a promotion application program running on a mobile computing device, an indication of one or more additional application programs installed on the mobile computing device. The computing device also includes a processing device configured to programmatically determine a characteristic of a first application program within the one or more additional application programs, and based on the characteristic of the first application program, programmatically generate a first profile data characteristic of a user of the mobile computing device. The computing device further includes a non-transitory storage device for storing the first profile data characteristic associated with the user of the mobile computing device.

In accordance with another exemplary embodiment, a computer-executed method is provided for providing an application program to a user of a mobile computing device. The method includes programmatically receiving, at a promotion application program, an indication of one or more additional application programs installed on the mobile computing device. The method also includes programmatically determining, using the promotion application program, that a first application program is not included in the one or more additional application programs. The method also includes using the promotion application program to render, on a visual display of the mobile computing device, an impression of a promotion provided by a promotion and marketing service. The method further includes using the promotion application program to render, on the visual display of the mobile computing device, a representation of the first application program, the representation of the first application program associated with the impression of the promotion, the representation of the first application program configured to enable download or installation of the first application program on the mobile computing device.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method for providing an application software program to a user of a mobile computing device. The method includes programmatically receiving, at a promotion application program, an indication of one or more additional application programs installed on the mobile computing device. The method also includes programmatically determining, using the promotion application program, that a first application program is not included in the one or more additional application programs. The method also includes using the promotion application program to render, on a visual display of the mobile computing device, an impression of a promotion provided by a promotion and marketing service. The method further includes using the promotion application program to render, on the visual display of the mobile computing device, a representation of the first application program, the representation of the first application program associated with the impression of the promotion, the representation of the first application program configured to enable download or installation of the first application program on the mobile computing device.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a visual display and a processing device configured to programmatically receive, at a promotion application program, an indication of one or more additional application programs installed on the mobile computing device. The processing device is also configured to programmatically determine, using the promotion application program, that a first application program is not included in the one or more additional application programs. The processing device is also configured to use the promotion application program to render, on the visual display of the mobile computing device, an impression of a promotion provided by a promotion and marketing service. The processing device is also configured to use the promotion application program to render, on the visual display of the mobile computing device, a representation of the first application program, the representation of the first application program associated with the impression of the promotion, the representation of the first application program configured to enable download or installation of the first application program on the mobile computing device.

In accordance with another exemplary embodiment, a computer-executed method for a promotion and marketing service is provided. The method includes providing a computer-executable tool for installation on a first application program, the first application program provided by a first merchant configured for installation on a mobile computing device. The method also includes, upon installation of the first application program, using the computer-executable tool to programmatically generate an impression of a promotion, the promotion provided by a promotion and marketing service for a product or service offered by the first merchant. The impression of the promotion is generated within a user interface associated with the first application program.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method. The method includes providing a computer-executable tool for installation on a first application program, the first application program provided by a first merchant configured for installation on a mobile computing device. The method also includes, upon installation of the first application program, using the computer-executable tool to programmatically generate an impression of a promotion, the promotion provided by a promotion and marketing service for a product or service offered by the first merchant. The impression of the promotion is generated within a user interface associated with the first application software program.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a storage device for storing a first application program associated with a first merchant, the first application program configured to include a computer-executable tool. The mobile computing device also includes a processing device configured to, upon installation of the first application program, use the computer-executable tool to programmatically generate an impression of a promotion, the promotion provided by a promotion and marketing service for a product or service offered by the first merchant, wherein the impression of the promotion is generated within a user interface associated with the first application program. The mobile computing device further includes a visual display for displaying the user interface associated with the first application program.

In accordance with another exemplary embodiment, a computer-executed method is provided on a mobile computing device. The method includes providing a promotion application program associated with a promotion and marketing service for installation on a mobile computing device. The method also includes, upon installation of the promotion application program, receiving, at the promotion application program, user input selecting a first impression of a first promotion associated with a first product or service offered by a first merchant. The method also includes, using the promotion application program to programmatically initiate detection of a first application program installed on the mobile computing device, the first application program associated with the first merchant. The method further includes, in response to the user input, using the promotion application program to automatically launch the first application program on the mobile computing device.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method. The method includes providing a promotion application program associated with a promotion and marketing service for installation on a mobile computing device. The method also includes, upon installation of the promotion application program, receiving, at the promotion application program, user input selecting a first impression of a first promotion associated with a first product or service offered by a first merchant. The method also includes using the promotion application program to programmatically initiate detection of a first application program installed on the mobile computing device, the first application program associated with the first merchant. The method further includes, in response to the user input, using the promotion application program to automatically launch the first application program on the mobile computing device.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a storage device for storing one or more computer-executable instructions for programmatically executing a promotion application program associated with a promotion and marketing service. The mobile computing device also includes a processing device configured to programmatically execute the promotion application program in which the promotion application program receives user input selecting a first impression of a first promotion associated with a first product or service offered by a first merchant. The processing device is also configured to use the promotion application program to programmatically initiate detection of a first application program installed on the mobile computing device, the first application program associated with the first merchant. The processing device is also configured to, in response to the user input, use the promotion application program to automatically launch the first application program on the mobile computing device. The mobile computing device also includes a visual display for displaying user interfaces associated with the first application program and the promotion application program.

In accordance with another exemplary embodiment, a computer-executed method is provided for incentivizing download of an application program. The method includes providing a computer-executable tool for installation on a first application program, the first application program configured for installation on a mobile computing device. The method also includes, upon installation of the first application program, using the computer-executable tool to programmatically provide an impression of a promotion to a user of the mobile computing device.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method. The method includes providing a computer-executable tool for installation on a first application program, the first application program configured for installation on a mobile computing device. The method also includes upon installation of the first application program, using the computer-executable tool to programmatically provide an impression of a promotion to a user of the mobile computing device.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a storage device for storing a computer-executable tool provided in a first application program. The mobile computing device also includes a processing device configured to, upon installation of the first application program on the mobile computing device, use the computer-executable tool to programmatically provide an impression of a promotion. The mobile computing device also includes a visual display for displaying the impression of the promotion.

In accordance with another exemplary embodiment, a computer-executed method is provided for incentivizing download of an application program. The method includes providing a computer-executable tool for installation on a first application program, the first application program configured for installation on a mobile computing device. The method also includes, upon installation of the first application program, using the computer-executable tool to programmatically initiate a determination of whether a promotion application program is installed on the mobile computing device. The method further includes, upon determining that the promotion application program is not installed on the mobile computing device, using the first application program to indicate an impression of a promotion to a user of the mobile computing device in association with a representation of the promotion application program to encourage download or installation of the promotion application program.

In accordance with another exemplary embodiment, one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions are provided for performing a method. The method includes providing a computer-executable tool for installation on a first application program, the first application program configured for installation on a mobile computing device. The method also includes, upon installation of the first application program, using the computer-executable tool to programmatically initiate a determination of whether a promotion application program is installed on the mobile computing device. The method further includes, upon determining that the promotion application program is not installed on the mobile computing device, using the first application program to indicate an impression of a promotion to a user of the mobile computing device in association with a representation of the promotion application program to encourage download or installation of the promotion application program.

In accordance with another exemplary embodiment, a mobile computing device is provided. The mobile computing device includes a storage device for storing a computer-executable tool provided in a first application program. The mobile computing device also includes a processing device configured to, upon installation of the first application program, use the computer-executable tool to programmatically initiate a determination of whether a promotion application program is installed on the mobile computing device, and, upon determining that the promotion application program is not installed on the mobile computing device, use the first application program to generate an impression of a promotion to a user of the mobile computing device to encourage download or installation of the promotion application program. The mobile computing device also includes a visual display for displaying the impression of the promotion.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects, features and advantages of exemplary embodiments will become more apparent and may be better understood by referring to the following description taken in conjunction with the accompanying drawings.

FIG. 1 is a block diagram illustrating an exemplary system within which exemplary embodiments may operate.

FIG. 2 is a block diagram illustrating exemplary modules of a computing device for use in a promotional server in accordance with certain exemplary embodiments.

FIG. 3 is a block diagram illustrating exemplary modules of a computing device for use by a consumer or merchant in accordance with an exemplary embodiment.

FIG. 4 is a flowchart illustrating an exemplary computer-executable method for detecting application programs installed on a mobile computing device using a promotion application program.

FIG. 5 illustrates a user interface rendered by a promotion application program detecting the processes running on a mobile computing device.

FIG. 6 is a flowchart illustrating an exemplary computer-executable method for programmatically generating one or more consumer profile data characteristics based on one or more application programs installed on a mobile computing device used by the user of the device.

FIG. 7 is a block diagram of a module of a computing device configured for determining profile data characteristics of a consumer.

FIGS. 8A-8C illustrate certain exemplary categories of application programs. Any trademarks or services marks shown in FIGS. 8A-8C are the property of their respective owners.

FIG. 9 is a flowchart illustrating an exemplary computer-executable method for using the generated profile data characteristics of a user of a mobile computing device in providing impressions of promotions to the user.

FIG. 10 is a block diagram illustrating exemplary computer processing units or devices that may be implemented in a promotion score generation module implemented by a promotion and marketing service.

FIG. 11 is a flowchart illustrating an exemplary computer-executable method for providing an application program for download in association with a promotion.

FIG. 12A is an exemplary user interface rendered by a promotion application program to enable download of an application program.

FIG. 12B is an exemplary user interface rendered after download of an application program.

FIG. 13 is a flowchart of an exemplary computer-executable method for incentivizing download of an application program.

FIG. 14 illustrates an exemplary user interface provided by an application program associated with a retail merchant.

FIG. 15 is a flowchart illustrating an exemplary computer-executable method for incentivizing download of a promotion application program.

FIG. 16 illustrates an exemplary user interface provided by a first application program associated with a retail merchant.

FIG. 17 is a flowchart illustrating an exemplary computer-executable method for a promotion and marketing service for launching application programs to enable a user of a mobile computing device to purchase a product or service.

FIG. 18 depicts a block diagram representing an exemplary mobile or non-mobile computing device that may be used to implement the systems and methods disclosed herein.

The accompanying drawings are not intended to be drawn to scale.

DETAILED DESCRIPTION

Exemplary embodiments provide computer systems, computer-executable methods and one or more non-transitory computer-readable media for managing promotions and, in some embodiments, for providing impressions of one or more promotions to a consumer using a promotion and marketing service. In some embodiments, the application programs installed by a consumer on his/her mobile computing device may be detected and used in recommending promotions to the consumer. The ability to recommend promotions for purchase that are of particular relevance to each consumer is important in a promotion and marketing service as it helps maintain an active and engaged customer base and maximize profits for the service. Impressions provided to a consumer, especially on a mobile computing device, can be intrusive. As such, it is critical to provide impressions of relevant promotions and to implicitly empower consumers to control the impressions that they receive.

FIG. 1 is a block diagram illustrating an exemplary system within which exemplary embodiments may operate. An exemplary promotion and marketing service 100 may manage a promotional system 102 for managing the offer, purchase, and redemption of a set of promotions. Consumers and merchants may access the promotional system 102 via a network 112 (such as the Internet, or the like) using computer devices 114A through 114N and 116A through 116N, respectively. The promotional system 102 may include a promotional server 104 in communication with a promotional database 106 that stores the set of promotions managed by the promotion and marketing service. The promotional system 102 may have access to a local context database or any suitable data storage structure 108 that stores data indicating aspects of application programs installed on mobile computing devices of consumers, and a historical database 110 storing information regarding consumer profile data and prior activities performed by consumers. In various embodiments, promotional database 106, application program database 108, and historical database 110 may be distinct databases, or may alternatively refer to a single database.

The promotional server 104 may be embodied by a computing system, such as apparatus 200 shown in FIG. 2. As illustrated in FIG. 2, the apparatus 200 may include a processor 202, a memory 204, an input/output module 206, and a communications module 208. In some embodiments, the apparatus 200 may include a profile data generation module 210 configured to determine one or more profile data characteristics of a consumer based on, for example, the application programs installed on a mobile computing device of the consumer. In some embodiments, the apparatus 200 may include a promotion generation module 212 configured to select one or more promotions from all available promotions for recommendation to a particular consumer. Promotions may be recommended based on, for example, the profile data characteristics of the consumer as determined by the profile data generation module 210.

In some embodiments, the processor 202 (and/or co-processor or any other processing circuitry assisting or otherwise associated with the processor) may be in communication with the memory 204 via a bus for passing information among components of the apparatus. The memory 204 may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory may be an electronic storage device (e.g., a computer readable storage medium). The memory may be configured to store information, data, content, applications, instructions, or the like, for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present invention.

The processor 202 may be embodied in a number of different ways and may, for example, include one or more processing devices configured to perform independently. Additionally or alternatively, the processor 202 may include one or more processors configured in tandem via a bus to enable independent execution of instructions, pipelining, and/or multithreading.

In an example embodiment, the processor 202 may be configured to execute instructions stored in the memory 204 or otherwise accessible to the processor. Alternatively or additionally, the processor may be configured to execute hard-coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed.

In some embodiments, the apparatus 200 may include an input/output module 206 that may, in turn, be in communication with processor 202 to provide output to the user and, in some embodiments, to receive an indication of a user input. The input/output module may comprise a user interface and may include a display. In such embodiments, the user interface may comprise a web user interface, a mobile application, a client device, a kiosk, or the like. In some embodiments, the input/output module 206 may also include a keyboard, a mouse, a touch screen, touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms. The processor, or user interface circuitry including the processor, may be configured to control one or more functions of one or more user interface elements through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., memory 204, onboard memory of the processor, and/or the like).

The communications module 208 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 200. In this regard, the communication interface may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface may additionally or alternatively support wired communication. As such, for example, the communication interface may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), or other mechanisms.

In one embodiment, a consumer or merchant may use the apparatus 200 (e.g., as a kiosk) to communicate with the promotional system 102 to view promotion information or interact with promotions. However, in some embodiments of the present invention, the consumer or merchant may perform these functions from outside of the promotional system 102 using, for example, an end-user device, such as consumer device 114 or merchant device 116.

Referring now to FIG. 3, a block diagram is illustrated showing an example end-user device, mobile computing device 300 that may be configured to run one or more application programs, for example, a promotion application program in communication with the promotional system 102, in accordance with embodiments of the present invention. In FIG. 3, the apparatus 300, which may embody consumer device 114 or merchant device 116, may include or otherwise be in communication with a processor 302, a memory 304, a communications module 308, and a user interface 306. In some embodiments, the processor (and/or co-processor or any other processing circuitry assisting or otherwise associated with the processor) may be in communication with the memory 304 via a bus for passing information among components of the apparatus. The memory 304 may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory may be an electronic storage device (e.g., a computer readable storage medium). The memory may be configured to store information, data, content, applications, instructions, or the like, for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present invention.

The processor 302 may be embodied in a number of different ways and may, for example, include one or more processing devices configured to perform independently. Additionally or alternatively, the processor may include one or more processors configured in tandem via a bus to enable independent execution of instructions, pipelining, and/or multithreading.

In an example embodiment, the processor 302 may be configured to execute instructions stored in the memory 304 or otherwise accessible to the processor. Alternatively or additionally, the processor may be configured to execute hard-coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 302 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Alternatively, as another example, when the processor 302 is embodied as an executor of software instructions, the instructions may specifically configure the processor 302 to perform the algorithms and/or operations described herein when the instructions are executed.

In some embodiments, the apparatus 300 may include a user interface 306 that may, in turn, be in communication with processor 302 to provide output to the user and, in some embodiments, to receive an indication of a user input. As such, the user interface 306 may include a display and may comprise a web user interface, a mobile application, a client device, a kiosk, or the like. In some embodiments, the user interface 306 may also include a keyboard, a mouse, a touch screen, touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms. The processor 302, or user interface circuitry comprising the processor 302, may be configured to control one or more functions of one or more user interface elements through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., memory 304, and/or the like).

The communications module 308 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 300 (e.g., promotional server 104 or, more generally, promotional system 102, other consumer devices 114 or merchant devices 116, or the like). In this regard, the communication interface may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface may additionally or alternatively support wired communication. As such, for example, the communication interface may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), or other mechanisms

Although exemplary embodiments are described herein as implemented on a mobile computing device, one of ordinary skill will recognize that embodiments may similarly be implemented on any computing or communication device that is not configured to be mobile (e.g., a desktop computer) but that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.

I. Definitions of Terms

Certain terms used in connection with exemplary embodiments are defined below.

As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received, and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention. Further, where a computing device is described herein to receive data from another computing device, it will be appreciated that the data may be received directly from the another computing device or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like, sometimes referred to herein as a “network.” Similarly, where a computing device is described herein to send data to another computing device, it will be appreciated that the data may be sent directly to the another computing device or may be sent indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like.

As used herein, the term “promotion and marketing service” may include a service that is accessible via one or more computing devices and is operable to provide example promotion and/or marketing services on behalf of one or more providers that are offering one or more instruments that are redeemable for goods, services, experiences and/or the like. In some examples, the promotion and marketing service may take the form of a redemption authority, a payment processor, a rewards provider, an entity in a financial network, a promoter, an agent and/or the like. As such, the service is, in some example embodiments, configured to present one or more promotions via one or more impressions, accept payments for promotions from consumers, issue instruments upon acceptance of an offer, participate in redemption, generate rewards, provide a point of sale device or service, issue payments to providers and/or or otherwise participate in the exchange of goods, services or experiences for currency, value and/or the like.

As used herein, the term “merchant” may include, but is not limited to, a business owner, consigner, shopkeeper, tradesperson, vender, operator, entrepreneur, agent, dealer, organization or the like that is in the business of a providing a good, service or experience to a consumer, facilitating the provision of a good, service or experience to a consumer and/or otherwise operating in the stream of commerce. One example merchant may be a running company that sells attire for use by a person who runs or participates in athletic activities.

As used herein, the term “consumer” may include, but is not limited to, a client, customer, purchaser, shopper, user, or the like, who may be in the position to or does exchange value for one or more vouchers under the terms defined by one or promotions. For example, and using the aforementioned running company as the example provider, a consumer may be an individual who is interested in purchasing running shoes.

As used herein, the term “consumer interface” may include any digitally rendered user interface displayed on a visual display device for enabling a consumer to interface with a promotion and marketing service. An exemplary consumer interface may enable a consumer to view one or more promotions, purchase one or more promotions, share one or more promotions with other consumers, receive messages and/or promotions from other consumers, receive messages from the promotion and marketing service, and the like. Exemplary consumer interfaces may be rendered in any desired form including, but not limited to, as a mobile application for display on a mobile computing device (e.g., a smartphone), a webpage or website for display on a mobile or non-mobile computing device via the Internet, and the like.

As used herein, the term “promotion” may include, but is not limited to, any type of offered, presented or otherwise indicated reward, discount, coupon, credit, deal, incentive, discount, media or the like that is indicative of a promotional value or the like that upon purchase or acceptance results in the issuance of an instrument that may be used toward at least a portion of the purchase of particular goods, services and/or experiences defined by the promotion. An example promotion, using the aforementioned running company as the example provider, is $25 for $50 toward running shoes. In some examples, the promotion defines an accepted value (e.g., a cost to purchase the promotion), a promotional value (e.g., the value of the resultant instrument beyond the accepted value), a residual value (e.g., the value upon return or upon expiry of one or more redemption parameters), one or more redemptions parameters and/or the like. Using the running company promotion as an example, the accepted value is $25 and the promotional value is $50. In this example, the residual value may be equal to the accepted value.

As used herein, the term “impression” may include a communication, a display, or other perceived indication, such as a flyer, print media, e-mail, text message, application alert, mobile applications, mobile notifications, other type of electronic interface or distribution channel and/or the like, of one or more promotions. For example, and using the aforementioned running company as the example provider, an e-mail communication sent to consumers that indicates the availability of a promotion of $25 for $50 toward running shoes.

As used herein, the term “promotion score” refers to a programmatically generated quantitative or qualitative score or indication of the expected effectiveness of providing an impression of a promotion to a consumer. In some embodiments, the expected effectiveness may be indicated by a predicted probability or likelihood that the consumer will purchase the promotion offered by the impression.

As used herein, the term “voucher” may include, but is not limited to, any type of gift card, tender, electronic certificate, medium of exchange, or the like, that embodies the terms of the promotion from which it results and which may be used toward at least a portion of the purchase, acquisition, procurement, consumption, or the like, of goods, services and/or experiences. In some examples, a voucher may take the form of tender that has a given value that is exchangeable for goods, services and/or experiences and/or a reduction in a purchase price of a particular good, service or experience. In some examples, the voucher may have multiple values, such as an accepted value, a promotional value and/or a residual value. For example, using the aforementioned running company as the example provider, a voucher may comprise an electronic indication in a mobile application that shows $50 of value to spend at the running company. In some examples, the accepted value of the voucher is defined by the value exchanged for the voucher. In some examples, the promotional value of the voucher is defined by the promotion from which the voucher resulted and is the value of the voucher beyond the accepted value. In some examples, the residual value of the voucher is the value after redemption, the value after the expiry or other violation of a redemption parameter, the return or exchange value of the voucher, or the like.

As used herein, the term “redemption” may include the use, exchange or other presentation of a voucher for at least a portion of a good, service or experience as defined by the voucher and its related offer. In some examples, redemption includes the verification of validity of the voucher. In other example embodiments, redemption may include an indication that a particular voucher has been redeemed and thus no longer retains an actual, promotional and/or residual value (e.g., full redemption). In other example embodiments, redemption may include the redemption of at least a portion of a voucher's actual, promotional and/or residual value (e.g., partial redemption). An example of redemption, using the aforementioned running company as the example provider, is exchanging a $50 voucher and $50 for a $100 pair of running shoes.

As used herein, the term “mobile computing device” refers to any computing or communication device that is portable and is transported in normal usage (e.g., the iPhone™ mobile communication device, the Android™ mobile communication device, and the like), and that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.

As used herein, the terms “application program,” “mobile application” and “mobile app” refer to computer-executable application software programmed or configured to run on a processing unit of a mobile computing device.

As used herein, the term “promotion application program” refers to an application program programmed or configured to run on a processing unit of a mobile computing device in order to enable a user of the computing device to use a promotion and marketing service. An exemplary promotion application program may be in constant or periodic communication with a remote computing device or server run by the promotion and marketing service to provide computer-executable functionality to the mobile computing device. An exemplary promotion application program may, for example, provide a user interface configured to render impressions of one or more promotions, receive user input selecting one or more impressions, and enable purchase of the promotions in response to user input.

As used herein, the term “module,” encompasses hardware, software and/or firmware configured to perform one or more particular functions.

As used herein, the term “computer-readable medium” refers to non-transitory storage hardware, non-transitory storage device or non-transitory computer system memory that may be accessed by a controller, a microcontroller, a computational system or a module of a computational system to encode thereon computer-executable instructions or software programs. A non-transitory “computer-readable medium” may be accessed by a computational system or a module of a computational system to retrieve and/or execute the computer-executable instructions or software programs encoded on the medium. Exemplary non-transitory computer-readable media may include, but are not limited to, one or more types of hardware memory, non-transitory tangible media (for example, one or more magnetic storage disks, one or more optical disks, one or more USB flash drives), computer system memory or random access memory (such as, DRAM, SRAM, EDO RAM), and the like.

As used herein, the term “set” refers to a collection of one or more items.

As used herein, the term “plurality” refers to two or more items.

As used herein, the terms “equal” and “substantially equal” refer interchangeably, in a broad lay sense, to exact equality or approximate equality within some tolerance.

As used herein, the terms “similar” and “substantially similar” refer interchangeably, in a broad lay sense, to exact sameness or approximate similarity within some tolerance.

As used herein, the terms “couple,” “coupled” and “coupling” refer to a direct or indirect connection among two or more components. For example, a first component may be coupled to a second component directly or through one or more intermediate components.

Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings in which some, but not all, embodiments of the inventions are shown. Indeed, these inventions may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.

II. Detection and Use of Application Programs in Offering Promotions

In certain exemplary embodiments, a promotion application program associated with a promotion and marketing service and executing on a mobile computing device may enable detection of all of the application programs installed on the mobile computing device. In some non-limiting embodiments, upon detection of the application programs, information on the application programs may be used by the promotion application programs to provide recommend promotions to the user of the mobile computing device.

FIG. 4 is a flowchart illustrating an exemplary computer-executable method 400 for detecting application programs on a mobile computing device using a promotion application program. In step 402, the promotion application program may initiate one or more mobile software program communication requests configured to initiate detection of the application programs installed on the mobile computing device. In certain non-limiting embodiments, the promotion application program may initiate the communication requests at predetermined time intervals and/or upon launch of the promotion application program. In a preferred embodiment, the detection of the application programs is performed in the background does not interfere with the user's usage of the mobile computing device, for example, by avoiding actually launching the application programs.

In step 404, the mobile software program communication requests may enable detection of the application programs. In step 406, as a result of the mobile software program communication requests, an indication of the application programs installed on the mobile computing device may be generated by the promotion application program. In a non-limiting exemplary embodiment, the indication may include a listing of the application programs and, optionally, additional information on the application programs (e.g., a source or distributor of the application programs, a functionality or operation of the application programs, a download/install time of the application programs, a subject matter relevant to the application programs, and the like). The indication of the application programs within the promotion application program may be rendered visually on the mobile computing device for the user or may not be rendered visually in some embodiments. In some embodiments, the promotion application program may cause the indication of application programs to be stored in a non-transitory manner on the mobile computing device.

In some embodiments, an indication of certain application programs that are not installed on the mobile computing device may also be generated by the promotion application program. In one embodiment, a single listing of application programs may be generated in which the programs that are installed are indicated differently from the programs that are not installed, for example, in highlighted text.

In step 408, in some exemplary embodiments, the promotion application program may transmit the indication of the application programs to a computing device remote from the mobile computing device. In some cases, the remote computing device may be associated with the promotion and marketing service providing the promotion application program. For example, the remote computing device may be a server or database storing information associated with the promotion and marketing service and its users.

In step 410, in some exemplary embodiments, the remote computing device may store the indication of the application programs associated with the mobile computing device and/or associated with the user of the mobile computing device. This enables maintenance and update of a record of the mobile application programs used by a consumer using the promotion and marketing service.

A variety of techniques may be used to detect the application programs installed and/or running on the mobile computing device in the method of FIG. 4. In some embodiments, the detection of application programs does not involve analysis of the file system stored on the mobile computing device, but rather depends on analysis of installed application programs and/or programs or processes running on the mobile computing device.

In one embodiment, public links (similar to web links) associated with the application programs may be used to determine if the links are accessible from the mobile computing device. A predetermined list of links associated with certain application programs may be provided to the promotion application program. The promotion application program may attempt to access one or more links associated with application programs. If a corresponding application program is installed on the mobile computing device, then the link is “resolved” or successfully accessed, and a corresponding response is transmitted to the promotion application program. The promotion application thereby determines, based on the response, that the application program is installed on the mobile computing device. On the other hand, if the corresponding application program is not installed on the mobile computing device, then the link is not “resolved” or is unsuccessfully accessed, and no corresponding response is transmitted to the promotion application program. The promotion application program thereby determines, based on the lack of a response, that the application program is not installed on the mobile computing device.

The access and use of the application program links by the promotion application program does not load or interact with the application programs and merely determines the presence of the application programs. Similarly, the use of the links by the promotion application program avoids accessing the execution of any of the application programs and does not interfere with their execution. This enables the discreet determination of the application programs installed on the mobile computing device without adversely affecting user experience of the application programs and without making operational changes to the modules and processes running on the mobile computing device. Additionally, the access and use of the application program links by the promotion application program advantageously does not require system-level access or modifications to the operating system of the mobile computing device. Furthermore, the access and use of the application program links by the promotion application program does not require user interaction or authorization, which enhances reliability and efficiency of the determination of the application programs installed on the mobile computing device.

Certain exemplary application program links (or “schemas”) have custom formats, for example:

macys:// for a Macy's application program,

sbux:// for a Starbucks application program,

twitter:// for a Twitter application program,

tweetbot:// for a Tweetbot Twitter Client application program,

zillowapp:// for a Zillow real estate application program,

yelp:// for a Yelp application program,

wordswithfriends:// for a Words with Friends Game application program,

wheresmywater:// for a Where's My Water Game application program,

waze:// for a Waze Traffic application program,

target-iphone:// for a Target application program,

feedly:// for a Feedly News Reader application program, and the like.

As another example, Facebook application program includes links that start with “fb” and have a number appended to it, for example, fb544680418945285://

In certain exemplary embodiments, a system service of extended permissions (e.g., on the Android platform) may be used by the promotion application program to detect application programs installed on the mobile computing device. The promotion application program may request the system service for system data corresponding to the application programs. In some cases, the user of the mobile computing device may be asked to authorize or deny the request. If authorized, the system service may return a list of application programs to the promotion application program.

In certain exemplary embodiments, the promotion application program may review a list of running processes to determine if any of the processes correspond to application programs. The promotion application program may be provided with a correspondence between certain application programs and corresponding processes. FIG. 5 illustrates a user interface 500 rendered by a promotion application program detecting the processes 502, 504, 506, 508, 510, 512, 514, 516 running on a mobile computing device and two exemplary application programs (“Hangouts”) and (“DarkSky”) determined to correspond to two exemplary processes 504, 510.

In certain embodiments, the indication of application programs installed on a mobile computing device (as determined using, for example, the method of FIG. 4) may be used to programmatically generate profile data characteristics associated with the user of the mobile computing device. The application programs that the user is interested in may reveal the user's past consumption activities and may be useful in predicting in his future consumption activities. The identification of the application programs may be used by the promotion and marketing service to predict the types of promotions that may be of most interest to the user.

FIG. 6 is a flowchart illustrating an exemplary computer-executable method 600 for programmatically generating one or more consumer profile data characteristics based on one or more application programs installed on a mobile computing device used by a consumer. In step 602, a computing device associated with a promotion and marketing service may receive an indication of one or more application programs installed on a mobile computing device associated with a consumer. The indication of the application programs may be received from a promotion application program associated with the promotion and marketing service and running on the mobile computing device. In step 604, the computing device may determine a characteristic of at least one of the application programs installed on the computing device.

As illustrated in FIG. 7, exemplary characteristics of application programs may include, but are not limited to, a functionality or operation of the application program 702 (e.g., a stock purchase program), a source of the application program 704 (e.g., a specific social networking website), a subject matter relevant to the application program 706 (e.g., outdoors), a time of download or installation of the application program onto the mobile computing device 708, a cost of the application program 710 (e.g., free or paid), an indication of the popularity of the application program 712, usage analytics 714 of the application program on the mobile computing device (e.g., how frequently the program is used), and the like.

Returning to FIG. 6, in step 606, based on the characteristics of the application programs installed on the mobile computing device, one or more profile data characteristics may be programmatically generated for the user of the mobile computing device. As illustrated in FIG. 7, a profile data generation module 210 may generate exemplary profile data characteristics including, but not limited to, a category of promotions of interest 716 (e.g., outdoor promotions), a promotion price preference 718 (e.g., below $100), biographical information on the user 720 (e.g., occupation, location), a preferred merchant 722 (e.g., Starbucks for coffee), a preferred product or service 724 (e.g., olive oil rather than soybean oil), and the like.

In one example, a single characteristic of a single application program may be used to generate a single profile data characteristic. In other examples, multiple characteristics of multiple application programs may be used to generate a single profile data characteristic. For example, a first characteristic of a first application program and a second characteristic of a second application program my be used to generate a single profile data characteristic. In other embodiments, multiple characteristics of multiple application programs may be used to generate multiple profile data characteristics. For example, a first characteristic of a first application program may be used to generate a first profile data characteristic, while a second characteristic of a second application program my be used to generate a second profile data characteristic.

In one embodiment, the promotion application program may determine a first characteristic of a first application program installed on the mobile computing device, and generate a first profile data characteristic of the user based on the first characteristic. The promotion application program may, subsequently, determine a second characteristic of a second application program installed on the mobile computing device. The promotion application program may update the first profile data characteristic based on the second characteristic of the second application program or determine that the first profile data characteristic should remain the same. In this manner, the promotion application program is enabled to develop and update a profile for the user based on an updated list of application programs installed on the mobile computing device. In some embodiments, a promotion and marketing service may use the user profile data to determine promotions to recommend or not to recommend to a user.

In certain embodiments, the user of the mobile computing device may be assigned a consumer category based on one or more application programs installed on the mobile computing device. A consumer category may indicate any suitable generalized characteristic of the user to facilitate recommendations of promotions to the user. As illustrated in a non-limiting manner in FIG. 8A, if the user's mobile computing device is determined to have installed application programs for celebrity magazines and tabloids, the user may be categorized as a “celebs and style lover.” Accordingly, in some embodiments, the promotion and marketing service may recommend (or assign higher promotion scores to) promotions relevant to style, fashion and celebrity news and events to the user. As another example, illustrated in FIG. 8B, if the user's mobile computing device is determined to have installed application programs for outdoor activities, the user may be categorized as “outdoorsy.” Accordingly, in some embodiments, the promotion and marketing service may recommend (or assign higher promotion scores to) promotions relevant to outdoor activities and events. As another example, illustrated in FIG. 8C, if the user's mobile computing device is determined to have installed application programs for financial news and transactions, the user may be categorized as a “financial whiz.” Accordingly, in some embodiments, the promotion and marketing service may recommend (or assign higher promotion scores to) promotions relevant to financial, investment and other money-related activities.

As another example, if the user's mobile computing device is determined to have installed an application program for a rental car service (e.g., a Zip Car application program as detected by the promotion application program from a zipcar:// link), the user may be categorized as not owning a car. Accordingly, in some embodiments, the promotion and marketing service may not recommend (or assign lower promotion scores to) automobile-related promotions to the user. As another example, if the user's mobile computing device is determined to have installed an application program for senior citizens (e.g., an AARP application program), the user may be categorized as a senior citizen. As another example, if the user's mobile computing device is determined to have installed an application program for an Internet music streaming service (e.g., a Pandora Radio application program as detected by the promotion application program from a pandora:// link), the user may be categorized as interested in music discovery. As another example, if the user's mobile computing device is determined to have installed an application program for a social media dashboard (e.g., a Hootsuite application program as detected by the promotion application program from an owly:// link), the user may be determined to manage social media accounts, possibly for a business or organization. As another example, if the user's mobile computing device is determined to have installed an application program for an online dating service (e.g., an okcupid application program as detected by the promotion application program from an okcupid:// link), the user may be determined to be actively looking to date. As another example, if the user's mobile computing device is determined to have installed an application program for a conservative publication (e.g., a National Review application program as detected by the promotion application program from a nrvwapp:// link), the user may be determined to most likely be politically conservative. As another example, if the user's mobile computing device is determined to have installed an application program for sport training (e.g., a Golf Put Pro application program as detected by the promotion application program from a npu379038275:// link), the user may be determined to be an enthusiast of the sport but in need of training.

As another example, if the user's mobile computing device is determined to have installed an application program for a discounted technology sale service (e.g., a New Egg application program as detected by the promotion application program from a nehttp:// link), the user may be determined to be interested in discount technology promotions. As another example, if the user's mobile computing device is determined to have installed an application program for religious services (e.g., a Muslim Pro application program as detected by the promotion application program from a muslimpro:// link), the user may be determined to most likely subscribe to that religion. As another example, if the user's mobile computing device is determined to have installed an application program for live music (e.g., a Live Nation application program as detected by the promotion application program from a Livenation:// link), the user may be determined to be interested in live events and entertainment. As another example, if the user's mobile computing device is determined to have installed an application program for new technology sales (e.g., a Layar Augmented Reality application program as detected by the promotion application program from a layar:// link), the user may be determined to be an early technology adopter.

In some cases, the promotion application program may determine user profile data based on the presence or absence of one or more application programs and also based on known user profile data items. As one example, if the user's mobile computing device is determined to have installed a real estate application program for a first city whereas the user's geographical location indicates that he resides in a second city, it may be determined that the user is looking to move or to purchase real estate in a different city.

As an example of determining user profile data based on the presence of multiple application programs, if a user's mobile computing device is determined to have installed a pregnancy tracking application program, the user may be determined to be trying to have a child. Additionally, if the user's mobile computing device is determined to have installed a rental car application program, then the user may be determined to not be a car owner. Since many new parents look to purchasing cars or vans, the promotion and marketing service may specifically recommend promotions for vans or related services to the user.

As another example, if a user's mobile computing device is determined to have installed an application program for a high-priced department store (e.g., a Nordstrom application program as detected by the promotion application program from a Nordstrom:// link), and if the user's mobile computing device is determined to not have installed any application programs for low-priced department stores (e.g., a Walmart application program as determined by the promotion application program from a walmart:// link or a Target application program as detected by the promotion application program from a target:// link), then the user may be determined to have a high income level. Accordingly, in some cases, higher price point promotions may be recommended to the user, and bargain basement promotions may be withheld.

As another example, if a user's mobile computing device is determined to have installed a fashion magazine application program (e.g., a Gentlemen's Quarterly application program as detected by the promotion application program from a gq:// link) and if the mobile computing device is also determined to have installed a travel-related application program (e.g., a Hotels Tonight application program detected by the promotion application program from a hotelstonight:// link), then the user may be determined to be interested in last-minute travel promotions in which style and fashion are taken into account.

As another example, if a user's mobile computing device is determined to have installed a movie streaming application program (e.g., a Netflix application program as detected by the promotion application program from a nflx:// link) and a premium travel service application program (e.g., an Uber application program in a luxury car market as detected by the promotion application program from an uber:// link), then it may be determined that the user already pays for premium content and/or subscribes to luxury services. In this case, if the user's mobile computing service is determined to not have any music streaming application program installed thereon, a premium membership promotion for the same may be offered.

The absence of one or more application programs from a user's mobile computing device may also be used by the promotion application program to determine user profile data. For example, if a user's mobile computing device has installed application programs for two out of three competing car rental services, then it may be determined that the user does not value the third service. In this case, it may also be determined that the third service typically has less value to car renters.

Returning to FIG. 6, in step 608, the generated profile data characteristics may be stored in association with an identity of the user of the mobile computing device.

In certain embodiments, one or more of the steps illustrated in FIG. 6 may be performed on the mobile computing device running the promotion application program or on a computing device remote from the mobile computing device (e.g., a device associated with the promotion and marketing service). The profile data characteristics of the user may be stored in a non-transitory storage device on or coupled to the mobile computing device and/or a non-transitory storage device on or coupled to a remote computing device associated with the promotion and marketing service.

In certain non-limiting embodiments, the promotion application program may automatically modify its design, structure, displayed content and/or function based on user profile data determined by the promotion application program and/or based on the application programs detected by the promotion application program. For example, if it is determined that the user is a senior citizen (based on the presence of an application program for senior citizens), then the user interface of the promotion application program may be modified automatically to be more readable for senior citizens, e.g., by increasing the font and image sizes and/or by enlarging the touchable areas on the interface. As another example, if it is determined that the user is mainly interested in travel (based on the presence of mainly travel-related application programs), then the user interface of the promotion application program may automatically reconfigure to display only travel-related information and promotions or to highlight travel-related information and promotions (e.g., by listing this information at the top).

FIG. 9 is a flowchart illustrating an exemplary computer-executable method 900 for using the generated profile data characteristics of the user of the mobile computing device in providing impressions of promotions to the same user. In step 902, the profile data characteristics may be received or programmatically generated at a computing device. In step 904, one or more characteristics of an available promotion may be received, for example, the price, subject matter, merchant, and the like. In step 906, a promotion score may be programmatically generated for the promotion based, in part, on the profile data characteristics of the user and the promotion characteristics. In one embodiment, a promotion score generation module may assign a promotion score to the promotion based on the promotion characteristics, the consumer profile data, the stored consumer activity data, and at least one of (i) current consumer activity data, (ii) current local context data, and/or (iii) predicted consumer activity data, may be taken into account.

In step 908, the computing device may determine whether to offer the promotion to the user based on the promotion score. In some embodiments, only those promotions whose promotion scores exceed a predetermined threshold value may be offered. In some cases, the predetermined threshold value for the promotion scores may be specific to the category or type of a promotion. In some cases, the predetermined threshold value for the promotion score may be specific to a consumer segment or group. For example, for consumers who use the promotion and marketing service infrequently, the predetermined threshold value may be set to a higher value than for more active consumers.

In step 910, in some embodiments, upon determining that the promotion should be offered to the user of the mobile computing device, the promotion may be ranked within a plurality of promotions based on its promotion score.

In step 912, the promotion may be offered to the user of the mobile computing device by causing an impression to be generated on a consumer interface associated with the user, for example, on a user interface associated with a promotion application program installed on the mobile computing device.

In step 914, in some embodiments, a reason may be provided as to why the promotion is particularly recommended for the consumer. The reason may indicate, in some embodiments, one or more other application programs installed on the mobile computing device that were considered in generating the promotion.

In certain embodiments, one or more of the steps illustrated in FIG. 9 may be performed on the mobile computing device running the promotion application program or on a computing device remote from the mobile computing device (e.g., a device associated with the promotion and marketing service). The profile data characteristics of the user may be stored in a non-transitory storage device on or coupled to the mobile computing device and/or a non-transitory storage device on or coupled to a remote computing device associated with the promotion and marketing service.

In certain embodiments, a profile data characteristic of the mobile computing device user may be used to determine or adjust a number of promotions having a certain characteristic offered to the user. For example, if the user is determined to be interested in the outdoors, then a larger number of promotions for outdoor events and activities may be provided to the user. Similarly, one or more characteristics of the application programs installed on the mobile computing device may be used to determine or adjust a number of promotions having a certain characteristic offered to the user. For example, if one or more financial application programs are determined to be newly installed on the mobile computing device, then promotions related to finance and investing may be provided to the user for the first time.

Conversely, in certain embodiments, a profile data characteristic of the user or one or more characteristics of the application programs installed or uninstalled on the mobile computing device may be used to reduce the number of promotions having a certain characteristic that are provided to the user. For example, if a profile data characteristic indicates that the user is interested in health and nutrition, then promotions in a “fast food” category may not be provided to the user.

The promotion application program may determine or adjust the promotions provided to a user based on one or more application programs that were previously installed but are currently uninstalled from the mobile computing device. This may be determined by comparing an updated list of installed application programs (i.e., snapshots of installed application programs) over time. For example, if it is determined that the user uninstalled an application program on healthy eating, then promotions in a “fast food” category may be introduced to the user.

In certain embodiments, the promotion application program may determine or adjust promotions offered to a user based on the time period within which one or more application programs were installed on the mobile computing device or uninstalled from the mobile computing device. The number of promotions having a certain characteristic that are provided to the user may also be adjusted based on the time period. For example, if it is determined that a health-related application program was recently installed on the mobile computing device (that is, within a predetermined time period, e.g., within hours, days or weeks), this may indicate that the user currently has a high level of interest in health-related matters. This information may be used by the promotion application program to provide a higher number of health-related promotions than would be offered if the health-related application program were installed before the predetermined time period. As another example, if it is determined that an application program from the Kayak travel website was recently downloaded (e.g., within hours, days or weeks) to the mobile computing device, then the promotion application program may increase the number of travel-related promotions targeted to the user. As another example, if it is determined that an application program from the Nordstrom retail store was recently deleted (e.g., within hours, days or weeks) from the mobile computing device, then the promotion application program may decrease the frequency of clothing-related promotions targeted to the user. As another example, if it is determined that the user uninstalled an application program after a certain predetermined time period (e.g., one year), it may be determined that the user is dissatisfied with the service or no longer finds it useful.

In certain embodiments, the promotion application program may determine or adjust promotions offered to a user based on the number of other application programs installed on the mobile computing device. For example, if a large number of application programs is installed on the user's mobile computing device, the promotion application program may determine that the user is an experienced application program user and may customize promotion recommendations accordingly by, for example, increasing the number of promotions offered.

In certain embodiments, the promotion application program may determine or adjust promotions offered to a user based on one or more computer processes running on the mobile computing device. In one example, the identity of the computing processes may be detected and associated with one or more application programs installed on the mobile computing device. The identity of the application programs may be used to determine promotions to be offered to the user as disclosed herein.

FIG. 10 is a block diagram illustrating exemplary processing units or devices that may be implemented in a promotion score generation module 1000 implemented by a promotion and marketing service. The promotion score generation module 1000 may take as input promotion data 1002 and data associated with one or more consumers, and may output promotion scores 1004 for at least a subset of the promotions.

An exemplary promotion score generation module 1000 may include a single processing unit or a plurality of processing units configured to process and analyze different types of consumer information and to relate the consumer information to the promotion data. The promotion data 1002 may be provided as input to each of the processing units. In some embodiments, a score or weight may be assigned to each promotion based on the analysis of each type of input data. The analysis of the input data may be performed by computer-executable instructions that may perform rule-based analysis, statistical analysis, machine learning analysis, and the like. The score or weight assigned to a promotion may indicate or be a measure of how relevant the promotion is to a consumer based on the specific input data used by the processing unit. For example, a first score or weight may be assigned to a promotion based on the analysis of the consumer profile data, a second score or weight may be assigned to the promotion based on the analysis of the current local context data, a third score or weight may be assigned to the promotion based on the analysis of the current consumer activity data, a fourth score or weight may be assigned to the promotion based on the analysis of the predicted consumer activity data, a fifth score or weight may be assigned to the promotion based on the analysis of the stored consumer activity data, and the like. The plurality of scores or weights generated may be combined in any suitable way to generate an overall promotion score for each promotion. Fewer or more scores or weights than those described herein may be used in generating an overall promotion score for a promotion.

In some exemplary embodiments, the promotion score generation module 1000 may assign a score to a promotion based partly on promotion data associated with the promotion. For example, if a promotion has very limited availability or if there is a short time deadline for purchasing or redeeming a promotion, then that promotion may be assigned a higher score to indicate an urgency with which the consumer should be notified of the promotion. As another example, transactional impressions (i.e., impressions generated based on prior consumer interaction with a promotion, such as shipping confirmation impressions) may be assigned a higher score than non-transactional impressions.

As illustrated in FIG. 10, an exemplary promotion score generation module 1000 may include a consumer profile data processor 1006 configured to process and analyze the consumer profile data with respect to aspects of each promotion. In an exemplary embodiment, consumer preference data 1036 included in the consumer profile data (e.g., a locational preference for promotions, a merchant preference for promotions, an instrument preference for promotions, a category and/or sub-category preference for promotions, a price preference for promotions, etc.) may be directly compared to aspects of the promotions using a promotion lookup module 1008. Consumer preference data 1036 includes data that relate directly to aspects of promotions and that can be directly compared to aspects of promotions. For example, if a consumer prefers to purchase promotions from Merchant M, then the promotion lookup module 1008 may determine if any of the available promotions originate at Merchant M. If so, the promotion lookup module 1008 may provide a high score to such promotions to indicate that the consumer is likely to purchase these promotions. The promotions not originating at Merchant M may be assigned lower scores or may not be assigned scores in certain embodiments.

In an exemplary embodiment, consumer biographical data 1038 included in the consumer profile data (e.g., age, gender, race, ethnicity, height, weight, income, residential address, etc.) may be processed and analyzed in a cluster analysis module 1010. Consumer biographical data 1038 may or may not be directly compared to aspects of promotions. For example, certain promotions may not indicate that they are suitable for a certain age or gender. As such, the cluster analysis module 1010 may employ computer-executable instructions configured to process and analyze promotion purchase patterns associated with a plurality of consumers who share one or more common consumer biographical data items with the specific consumer to whom a promotion impression will be provided.

In other words, a plurality of consumers may be defined as a cohort of the specific consumer based on one or more consumer biographical data items, for example, consumers who are in the same age range as the specific consumer, consumers who are the same gender as the specific consumer, consumers who reside in the same geographical area as the specific consumer, and the like. The promotion purchase patterns of this cohort may then be analyzed to determine whether the specific consumer is likely to purchase each of the promotions indicated in the promotion data 1002. The implicit notion is that consumers with shared biographical characteristics are likely to have similar interests in promotions and similar purchase patterns. For example, consumers in a teenage cohort are less likely to purchase alcohol and tobacco. The cluster analysis module 1010 may implement any suitable technique including, but not limited to, statistical analysis, machine learning, and the like.

The cluster analysis module 1010 illustrated in FIG. 10 may implement a statistical analysis technique in certain exemplary embodiments. For example, input data may be fed into a statistical software, such as JMP from SAS, from which the probability of the consumers purchasing each promotion may be outputted. A promotion score that is proportional to the generated probability value may be assigned to each promotion.

The cluster analysis module 1010 illustrated in FIG. 10 may implement a machine learning technique in certain exemplary embodiments.

In an exemplary embodiment, a predictive model may be programmatically generated by analyzing certain aspects or features of each promotion for each consumer that are useful for predicting the probability that the consumer will purchase the promotion. Exemplary promotion features used may include, but are not limited to, geographical proximity to the consumer, price, previous viewing or purchase activity performed by the consumer for the promotion category, and the like. The promotion features may be programmatically retrieved from the historical database 110 in some embodiments. The promotion features may be used to programmatically generate a predictive model for outputting purchase probabilities. The predictive model may be generated using, for example, a learning method like random forests. The generated predictive model may be used to compute, in real-time without any intentional delay, the predicted purchase probability per promotion for each consumer. The promotions may be ranked in descending order of their predicted purchase probabilities. Promotion scores may be determined based on the predicted purchase probabilities.

III. Incentivized Download of Application Programs

In certain embodiments, a promotion application program may enable a user to download one or more additional application programs from the Internet. In some cases, the promotion application program may incentivize download of an application program by providing a promotion in conjunction with download of the application program. For example, an impression for a promotion and an application program associated with the promotion (e.g., provided by a merchant offering the promotion) may be displayed by the promotion application program. A user interface associated with the promotion application program may enable the user to indicate whether he/she wishes to purchase the promotion and/or whether he/she wishes to download the application program. This provides the user with the option of merely purchasing the promotion without downloading the application program, or downloading the application program while receiving or purchasing the promotion.

As one example, if the promotion application program determines that the mobile computing device of the user does not have installed thereon an application program provided by Lyft, the promotion application program may render a representation of the Lyft application program and also indicate that download of the Lyft application program will be rewarded with an incentive, for example, a promotion provided in the downloaded and installed Lyft application, extra Lyft credits at installation of the Lyft application program, and the like.

In some cases, the promotion application program may restrict purchase of a promotion so that the promotion may be purchased only upon download of the application program. In some cases, the representation of the application program may be presented by the promotion application program only after the impression of the promotion is selected by the user.

FIG. 11 is a flowchart illustrating an exemplary computer-executable method 1100 for providing an application program for download in association with a promotion. In step 1102, a promotion application program installed on a mobile computing device may receive an indication of other application programs installed on the mobile computing device. Any of the exemplary techniques for detecting application programs disclosed herein may be used.

In step 1104, the promotion application program may determine whether a specific first application program is not included in the list of application programs installed on the mobile computing device. This may be accomplished by comparing an identification of the first application program to the list of application programs. Upon determining that the first application program is not included in the list of installed application programs, in step 1106, the promotion application program may render an impression of a promotion on the mobile computing device, where the promotion is associated with the first application program (e.g., provided by the same merchant). In step 1108, the promotion application program may render a representation of the first application program on the mobile computing device in association with the impression of the promotion. The representation of the first application program may be configured to enable, upon user selection of the representation, download of the first application program from the Internet onto the mobile computing device. In some cases, the promotion application program may indicate that download of the first application program will be rewarded with the promotion.

In contrast, if the first application program were determined to be included in the list of installed application programs, then the representation of the first application program would not be presented in step 1108 as there would be no need to install the first application program. In this case, the promotion associated with the first application program would also not be represented by the promotion application program as there would be no need for an incentivized download of the first application program.

In step 1110, the promotion application program may receive user input indicating that the user wishes to download the first application program (e.g., by selecting the representation of the first application program). In step 1112, in response, the promotion application program may automatically initiate download of the first application program onto the mobile computing device by, for example, transmitting a request to a remote computing server storing computer-executable instructions for the first application program. In some cases, in step 1114, the promotion application program may automatically provide the promotion associated with the first application program to the user of the mobile computing device or may allow purchase of the promotion as a reward for the download of the first application program.

In some cases, the promotion application program may enable purchase of the promotion by the user without download of the first application program. Upon receipt of user input indicating that the user wishes to purchase the promotion (e.g., by selecting the impression of the promotion), the promotion application program may enable purchase of the promotion by, for example, transmitting a request to a promotion and marketing service for the promotion.

In some cases, upon download or installation of the first application program, the promotion application program may render an impression of the promotion either in a user interface associated with the promotion application program and/or in a user interface associated with the first application program.

FIG. 12A is an exemplary user interface 1200 rendered by a promotion application program to enable download of an application program. User interface 1200 may display representations 1202 a-1202 b of exemplary application programs that may be downloaded. User interface 1200 also displays impressions 1204 a-1204 b of promotions associated with the application programs to indicate that download of an application program is incentivized by a corresponding promotion.

FIG. 12B is an exemplary user interface 1250 rendered by an application program 1202 a after its download. The user interface 1250 may provide a corresponding promotion 1204 a to the user automatically upon launch.

In certain exemplary embodiments, the promotion application program may enable corporate entities to compete in incentivizing downloads of their corresponding application programs. For example, if the mobile computing device has installed thereon an application program provided by Macy's, the promotion application program may enable competitors of Macy's (e.g., Nordstrom) to bid to have their application programs installed on the mobile computing device. In one embodiment, the promotion application program may determine that a first application program associated with a first merchant is installed on the mobile computing device, and that a second application program associated with a second merchant is not installed on the mobile computing device. In one case, the promotion application program may cause the mobile computing device to transmit an indication to a remote computing device associated with the second merchant to indicate that the second application program is not installed on the mobile computing device. This information may enable the second merchant to target its second application program to the mobile computing device. In one embodiment, the promotion application program may render a representation of the second application program associated with the second merchant on the mobile computing device. The representation may be configured to enable download of the second application program. In one case, to incentivize download of the second application program, the promotion application program may also render an impression of a promotion (e.g., offered by the second merchant) on the mobile computing device. Upon download of the second application program by the user, the promotion application program may provide the promotion to the user.

In certain exemplary embodiments, the promotion application program may enable merchants to target consumers using a retail merchant's application program. For example, if the mobile computing device has an application program provided by Macy's, the promotion application program may enable retail merchants selling their products through Macy's (e.g., Kelloggs, Pepsi) to target their advertising to the user. In one embodiment, the promotion application program may determine that a first application program associated with a first merchant is installed on the mobile computing device, and that a second application program associated with a second merchant (which sells products using the first merchant's store) is not installed on the mobile computing device. In one case, the promotion application program may cause the mobile computing device to transmit an indication to a remote computing device associated with the second merchant to indicate that the second application program is not installed on the mobile computing device. This information may enable the second merchant to target its second application program to the mobile computing device. In one embodiment, the promotion application program may render a representation of the second application program associated with the second merchant on the mobile computing device. The representation may be configured to enable download of the second application program. In one case, to incentivize download of the second application program, the promotion application program may also render an impression of a promotion (e.g., offered by the second merchant) on the mobile computing device. Upon download of the second application program by the user, the promotion application program may provide the promotion to the user.

IV. Offering Promotion Impressions Using Application Programs

In certain embodiments, a promotion and marketing service may provide a computer-executable program or tool for providing impressions of promotions. A computer-executable program or tool (e.g., software development kit) may be provided by a promotion and marketing service for incorporation in a first application program. The computer-executable tool may enable the first application program to display impressions of promotions offered by the promotion and marketing service, thereby making it unnecessary to provide a separate promotion application program for presenting promotions relevant to a merchant providing the first application program. Rather, each impression may be presented in a user interface of the first application program in association with a representation of a relevant product sold by the merchant associated with the first application program.

In one embodiment, the promotion and marketing service may host the first application program incorporating the computer-executable tool on a website to enable download of the first application program by a user of a mobile computing device. The website may indicate that the download of the first application program will enable the user to receive promotions from the promotion and marketing service. Upon download and installation of the first application program from the promotion and marketing service website, the first application program may provide the user with an incentive or reward for the download. The incentive may be a promotion in some cases.

The first application program may or may not be provided by or be related to the promotion and marketing service. For example, the first application program may be provided by a retail merchant (e.g., Macy's), while the computer-executable tool may be provided by a separate promotion and marketing service that provides promotions for products sold by the retail merchant.

FIG. 13 is a flowchart of an exemplary computer-executable method 1300 for incentivizing download of an application program. In step 1302, a computer-executable program or tool associated with a promotion and marketing service may be provided for incorporation in a first application program. The first application program may or may not be provided by or associated with the promotion and marketing service. In step 1304, upon installation of the first application program on a mobile computing device, the computer-executable tool may programmatically generate an impression of a promotion provided by the promotion and marketing service. In one embodiment, the impression may be rendered on a user interface associated with the first application program.

FIG. 14 illustrates an exemplary user interface 1400 provided by a first application program associated with a retail merchant. A computer-executable program or tool associated with a promotion and marketing service included in the first application program causes an impression of a promotion to be rendered on the user interface 1400 of the first application program related to a product sold by the retail merchant. For example, the user interface 1400 may present a product 1402 and a promotion 1404 providing a discount for the product. Thus, incorporating the computer-executable program or tool in the first application program enables the retail merchant to incentivize purchases with promotions. In return, in some embodiments, the promotion and marketing service may receive a payment from the retail merchant for the use of the computer-executable program or tool.

In one embodiment, the first application program associated with a retail merchant may be provided in conjunction with a promotion application program associated with a promotion and marketing service on the user's mobile computing device. In this case, an impression of a promotion rendered by the promotion application program, when selected by the user, may automatically cause the first application program to be launched at the relevant product page and with the impression rendered on the first application program as well.

V. Distribution of Promotion Application Program

In certain embodiments, a promotion and marketing service may provide a computer-executable program or tool for incorporation in an application program in order to incentivize download of a promotion application program by a user of a mobile computing device. In one embodiment, a computer-executable program or tool (e.g., software development kit) may be provided by a promotion and marketing service for incorporation in a first application program. The first application program may or may not be provided by or be related to the promotion and marketing service. For example, the first application program may be provided by a retail merchant (e.g., Macy's), while the computer-executable tool may be provided by a separate promotion and marketing service that provides promotions for products sold by the retail merchant.

The computer-executable program or tool may enable detection of whether a promotion application program is installed on the mobile computing device. Exemplary techniques for detecting application programs disclosed herein may be used. If the promotion application program is determined to not be installed on the mobile computing device, the computer-executable program or tool may incentivize download of the promotion application program. For example, the tool may render a representation of the promotion application program and an impression of a promotion on a user interface associated with the first application program. The representation of the promotion application program may be configured to, when selected, enable download of the promotion application program using the Internet. The impression of the promotion may indicate that the download will be rewarded with the promotion. Upon download of the promotion application program, the user of the mobile computing device may be provided with the promotion automatically.

In certain embodiments, the computer-executable program or tool may obtain and store information about the user's interaction with the first application program. Upon installation of the promotion application program, the program or tool may transmit the stored information for use by the promotion application program. Similarly, information from the promotion application program may be transmitted to the first application program, for example, to launch the first application program on a particular product page or with a particular promotion or user code.

FIG. 15 is a flowchart illustrating an exemplary computer-executable method 1500 for incentivizing download of a promotion application program. In step 1502, a computer-executable program or tool may be provided by a promotion and marketing service for incorporation into a first application program. The first application program may be provided by a separate entity than the promotion and marketing service. In step 1504, upon installation of the first application program on a mobile computing device, the computer-executable program or tool may programmatically initiate a determination that a promotion application program is not installed on the mobile computing device. In step 1506, upon determining that the promotion application program is not installed, the computer-executable tool may cause an impression of a promotion and a representation of the promotion application program to be rendered in a user interface of the first application program.

In step 1508, the first application program may receive user input indicating that the user wishes to download the promotion application program (e.g., by selecting the representation of the promotion application program). In step 1510, in response, the computer-executable tool may cause the first application program to automatically initiate download of the promotion application program onto the mobile computing device by, for example, transmitting a request to a remote computing server storing computer-executable instructions for the promotion application program. In certain embodiments, the computer-executable tool may detect if the promotion application program has been downloaded or installed on the mobile computing device. Upon verification of the installation of the promotion application program, the computer-executable tool may provide the promotion to the user of the mobile computing device, in step 1512.

FIG. 16 illustrates an exemplary user interface 1600 provided by a first application program associated with a retail merchant. A computer-executable program or tool associated with a promotion and marketing service included in the first application program may cause an impression 1604 of a promotion and a representation 1602 of a promotion application program to be rendered on the user interface 1600. Selection of the representation 1602 by the user of the mobile computing device may cause automatic download of the promotion application program and may provide the promotion to the user.

VI. Launching Other Application Programs from Promotion Application Program

In certain embodiments, a promotion application program provided by a promotion and marketing service may launch one or more additional application programs on a mobile computing device to enable a user to view goods and services associated with a promotion. The promotion application program may be configured to render an impression of a promotion on a visual display of the computing device. The promotion application program may also be configured to receive user input selecting the impression and indicating that the user wishes to purchase the promotion.

A promotion offered by the promotion and marketing service may pertain to a product or service sold by a merchant. Certain merchants provide application programs for enabling purchase of their products and services using a mobile computing device. If the user's mobile computing device already has installed thereon a merchant application program associated with a product or service of a selected promotion, then the promotion application program may automatically launch the merchant application program upon selection of the promotion. In one embodiment, the promotion application program may launch another application program by accessing a corresponding link for the application program (e.g., Nordstrom://products?id=927832 for launching a specific product page for the Nordstrom application program). This enables the user to directly purchase the product or service associated with the promotion and provided by the merchant using the merchant's application program without having to browse the merchant's website for the associated product or service. For example, if the user selects, using the promotion application program, a promotion for a product offered by the retail store Nordstrom, then the Nordstrom application program may be launched automatically to the corresponding product page. On the other hand, if the promotion application program determines that the merchant application program is not installed on the mobile computing device, then it may automatically launch the website of the merchant on a webpage for the product or service associated with the selected promotion.

FIG. 17 is a flowchart illustrating an exemplary computer-executable method 1700 for a promotion and marketing service for launching application programs to enable a user of a mobile computing device to purchase a product or service. In step 1702, the promotion and marketing service may provide a promotion application program for installation of the mobile computing device. In step 1704, upon installation of the promotion application program, the promotion application program may render an impression of a promotion. In step 1706, the promotion application program may receive user input selecting the impression of the promotion. In step 1708, the promotion application program may initiate detection of other application programs installed on the mobile computing device. Any of the exemplary techniques for detecting application programs as disclosed herein may be used.

In step 1710, the promotion application program may determine if the installed application programs include an application program provided by a merchant associated with the promotion. If the merchant application program is installed on the mobile computing device, the promotion application program may automatically launch the merchant application program to a user interface that presents the product or service associated with the promotion, in step 1712. If the merchant application program is not installed on the mobile computing device, the promotion application program may automatically launch a web browser on the mobile computing device to a webpage of a website provided by the merchant and associated with the product or service of the promotion, in step 1714.

In certain embodiments, if the promotion application program determines that the selected promotion is sold out or expired, then it may automatically launch the merchant application program to a predetermined user interface or to render predetermined information, for example, displaying a different product than the one offered by the promotion.

In certain embodiments, the promotion application program may launch a first application program based on the presence of a second application program on a user's mobile computing device. For example, if the computing device is determined to include a coffee retailer application program (e.g., a Starbucks application program as determined by the promotion application program from an sbux:// link), then an online retail directory service (e.g., Yelp) may be provided the ability to market coffee stores near the user's location. In this case, the promotion application program may automatically launch an application program associated with the online retail directory service to a page appropriate for coffee and the user's location (e.g., using a yelp4://search?term=coffee link).

VII. Exemplary Computing Devices

Systems and methods disclosed herein may include one or more programmable processing units having associated therewith executable instructions held on one or more computer readable media, RAM, ROM, hard drive, and/or hardware. In exemplary embodiments, the hardware, firmware and/or executable code may be provided, for example, as upgrade module(s) for use in conjunction with existing infrastructure (for example, existing devices/processing units). Hardware may, for example, include components and/or logic circuitry for executing the embodiments taught herein as a computing process.

Displays and/or other feedback means may also be included, for example, for rendering a graphical user interface, according to the present disclosure. The display and/or other feedback means may be stand-alone equipment or may be included as one or more components/modules of the processing unit(s).

The actual software code or control hardware which may be used to implement some of the present embodiments is not intended to limit the scope of such embodiments. For example, certain aspects of the embodiments described herein may be implemented in code using any suitable programming language type such as, for example, assembly code, C, C# or C++using, for example, conventional or object-oriented programming techniques. Such code is stored or held on any type of suitable non-transitory computer-readable medium or media such as, for example, a magnetic or optical storage medium.

As used herein, a “processor,” “processing unit,” “computer” or “computer system” may be, for example, a wireless or wire line variety of a microcomputer, minicomputer, server, mainframe, laptop, personal data assistant (PDA), wireless e-mail device (for example, “BlackBerry,” “Android” or “Apple,” trade-designated devices), cellular phone, pager, processor, fax machine, scanner, or any other programmable device configured to transmit and receive data over a network. Computer systems disclosed herein may include memory for storing certain software applications used in obtaining, processing and communicating data. It can be appreciated that such memory may be internal or external to the disclosed embodiments. The memory may also include non-transitory storage medium for storing software, including a hard disk, an optical disk, floppy disk, ROM (read only memory), RAM (random access memory), PROM (programmable ROM), EEPROM (electrically erasable PROM), flash memory storage devices, or the like.

FIG. 18 depicts a block diagram representing an exemplary mobile or non-mobile computing device 1800 that may be used to implement the systems and methods disclosed herein. The computing device 1800 may be any computer system, such as a workstation, desktop computer, server, laptop, handheld computer, tablet computer (e.g., the iPad™ tablet computer), mobile computing or communication device (e.g., the iPhone™ mobile communication device, the Android™ mobile communication device, and the like), or other form of computing or telecommunications device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein. In exemplary embodiments, a distributed computational system may include a plurality of such computing devices.

The computing device 1800 includes one or more non-transitory computer-readable media having encoded thereon one or more computer-executable instructions or software for implementing the exemplary methods described herein. The non-transitory computer-readable media may include, but are not limited to, one or more types of hardware memory and other tangible media (for example, one or more magnetic storage disks, one or more optical disks, one or more USB flash drives), and the like. For example, memory 1806 included in the computing device 1800 may store computer-readable and computer-executable instructions or software for implementing a graphical user interface as described herein. The computing device 1800 also includes processor 1802 and associated core 1804, and in some embodiments, one or more additional processor(s) 1802′ and associated core(s) 1804′ (for example, in the case of computer systems having multiple processors/cores), for executing computer-readable and computer-executable instructions or software stored in the memory 1802 and other programs for controlling system hardware. Processor 1802 and processor(s) 1802′ may each be a single core processor or a multiple core (1804 and 1804′) processor.

Virtualization may be employed in the computing device 1800 so that infrastructure and resources in the computing device may be shared dynamically. A virtual machine 1814 may be provided to handle a process running on multiple processors so that the process appears to be using only one computing resource rather than multiple computing resources. Multiple virtual machines may also be used with one processor.

Memory 1806 may include a computer system memory or random access memory, such as DRAM, SRAM, EDO RAM, and the like. Memory 1806 may include other types of memory as well, or combinations thereof.

A user may interact with the computing device 1800 through a visual display device 1818, such as a screen or monitor, which may display one or more graphical user interfaces 1820 provided in accordance with exemplary embodiments described herein. The visual display device 1818 may also display other aspects, elements and/or information or data associated with exemplary embodiments.

The computing device 1800 may include other I/O devices for receiving input from a user, for example, a keyboard or any suitable multi-point touch interface 1608 or pointing device 1810 (e.g., a mouse, a user's finger interfacing directly with a display device). As used herein, a “pointing device” is any suitable input interface, specifically, a human interface device, that allows a user to input spatial data to a computing system or device. In an exemplary embodiment, the pointing device may allow a user to provide input to the computer using physical gestures, for example, pointing, clicking, dragging, dropping, and the like. Exemplary pointing devices may include, but are not limited to, a mouse, a touchpad, a finger of the user interfacing directly with a display device, and the like.

The keyboard 1808 and the pointing device 1810 may be coupled to the visual display device 1818. The computing device 1800 may include other suitable conventional I/O peripherals. The I/O devices may facilitate implementation of the one or more graphical user interfaces 1820, for example, implement one or more of the graphical user interfaces described herein.

The computing device 1800 may include one or more storage devices 1824, such as a durable disk storage (which may include any suitable optical or magnetic durable storage device, e.g., RAM, ROM, Flash, USB drive, or other semiconductor-based storage medium), a hard-drive, CD-ROM, or other computer readable media, for storing data and computer-readable instructions and/or software that implement exemplary embodiments as taught herein. In exemplary embodiments, the one or more storage devices 1824 may provide storage for data that may be generated by the systems and methods of the present disclosure. For example, a storage device 1824 may provide storage for computer-executable instructions configured to run one or more application programs 1826. The one or more storage devices 1824 may be provided on the computing device 1800 and/or provided separately or remotely from the computing device 1800. The exemplary components depicted as being stored on storage device 1824 may be stored on the same or on different storage devices.

The computing device 1800 may include a network interface 1812 configured to interface via one or more network devices 1822 with one or more networks, for example, Local Area Network (LAN), Wide Area Network (WAN) or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (for example, 802.11, T1, T3, 56 kb, X.25), broadband connections (for example, ISDN, Frame Relay, ATM), wireless connections, controller area network (CAN), or some combination of any or all of the above. The network interface 1812 may include a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 1800 to any type of network capable of communication and performing the operations described herein. The network device 1822 may include one or more suitable devices for receiving and transmitting communications over the network including, but not limited to, one or more receivers, one or more transmitters, one or more transceivers, one or more antennae, and the like.

The computing device 1800 may run any operating system 1816, such as any of the versions of the Microsoft® Windows® operating systems, the different releases of the Unix and Linux operating systems, any version of the MacOS® for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein. In exemplary embodiments, the operating system 1816 may be run in native mode or emulated mode. In an exemplary embodiment, the operating system 1816 may be run on one or more cloud machine instances.

One of ordinary skill in the art will recognize that exemplary computational system 1800 may include more or fewer modules than those shown in FIG. 18.

In describing exemplary embodiments, specific terminology is used for the sake of clarity. For purposes of description, each specific term is intended to, at least, include all technical and functional equivalents that operate in a similar manner to accomplish a similar purpose. Additionally, in some instances where a particular exemplary embodiment includes a plurality of system elements or method steps, those elements or steps may be replaced with a single element or step. Likewise, a single element or step may be replaced with a plurality of elements or steps that serve the same purpose. Further, where parameters for various properties are specified herein for exemplary embodiments, those parameters may be adjusted up or down by 1/20th, 1/10th, ⅕th, ⅓rd, ½nd, and the like, or by rounded-off approximations thereof, unless otherwise specified. Moreover, while exemplary embodiments have been shown and described with references to particular embodiments thereof, those of ordinary skill in the art will understand that various substitutions and alterations in form and details may be made therein without departing from the scope of the invention. Further still, other aspects, functions and advantages are also within the scope of the invention.

Exemplary flowcharts are provided herein for illustrative purposes and are non-limiting examples of methods. One of ordinary skill in the art will recognize that exemplary methods may include more or fewer steps than those illustrated in the exemplary flowcharts, and that the steps in the exemplary flowcharts may be performed in a different order than shown.

Blocks of the block diagram and the flow chart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that some or all of the blocks/steps of the circuit diagram and process flowchart, and combinations of the blocks/steps in the circuit diagram and process flowcharts, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions. Exemplary systems may include more or fewer modules than those illustrated in the exemplary block diagrams.

Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these embodiments of the invention pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the embodiments of the invention are not to be limited to the specific embodiments disclosed and that modifications, combinations and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. 

1-11. (canceled)
 12. An apparatus comprising at least one processor and at least one memory having computer-coded instructions stored thereon that, in execution with the at least one processor, configures the apparatus to: generate an application program characteristic set for each application program of a first installed application program set; generate a profile category set based at least in part on the application program characteristic set; retrieve an updated installed application list indicating a second installed application program set; determine at least one uninstalled application based at least in part on a comparison of the first installed application program set and the second installed application program set; generate a second application program characteristic set associated with the at least one uninstalled application; and update the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application.
 13. The apparatus according to claim 12, wherein to retrieve the updated installed application list, the apparatus is configured to: cause a mobile computing device to detect a list of processes running on the mobile computing device, the list of processes running on the mobile computing device representing the updated installed application list; and receive the updated installed application list from the mobile computing device based on the list of processes running on the mobile computing device.
 14. The apparatus according to claim 12, wherein to retrieve the updated installed application list, the apparatus is configured to: cause a mobile computing device to identify, via a system service list data representing the updated installed application list; and receive the updated installed application list from the mobile computing device based on the system service list data identified via the mobile computing device.
 15. The apparatus according to claim 12, wherein to retrieve the updated installed application list, the apparatus is configured to: cause a mobile computing device to generate a link resolution data set by attempting access of each application program link in an application program link list, wherein the link resolution data set comprises data indicative of a resolved state or an unresolved state associated with each particular application program in the application program link list based on the attempted access of each particular application program; and receive the updated installed application list from the mobile computing device based on each resolved state in the link resolution data set
 16. The apparatus according to claim 12, wherein to generate the profile category set based at least in part on the application program characteristic set, the apparatus is configured at least to: identify a first application program characteristic from the application program characteristic set, the first application program characteristic corresponding to a first application of the installed application program set; generate a first profile characteristic based on the first application program characteristic; and generating at least one profile category of the profile category set based at least in part on the first profile characteristic.
 17. The apparatus according to claim 12, wherein to generate the profile category set based at least in part on the application program characteristic set, the apparatus is configured at least to: identify a plurality of application program characteristics from the application program characteristic set, the plurality of application program characteristics corresponding to a plurality of application programs of the installed application program set; generate a plurality of profile characteristics based on the plurality of application program characteristics; and generate at least one profile category of the profile category set based at least in part on the profile characteristics.
 18. The apparatus according to claim 12, wherein to update the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application, the apparatus is configured to: generate an updated profile characteristic set based at least in part on the second application program characteristic set; generate an updated profile category based at least in part on the updated profile characteristic set; and update the profile category set to include the updated profile category.
 19. A computer-implemented method comprising: generating an application program characteristic set for each application program of a first installed application program set; generating a profile category set based at least in part on the application program characteristic set; retrieving an updated installed application list indicating a second installed application program set; determining at least one uninstalled application based at least in part on a comparison of the first installed application program set and the second installed application program set; generating a second application program characteristic set associated with the at least one uninstalled application; and updating the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application.
 20. The computer-implemented method according to claim 19, wherein retrieving the updated installed application list comprises: causing a mobile computing device to detect a list of processes running on the mobile computing device, the list of processes running on the mobile computing device representing the updated installed application list; and receiving the updated installed application list from the mobile computing device based on the list of processes running on the mobile computing device.
 21. The computer-implemented method according to claim 19, wherein retrieving the updated installed application list comprises: causing a mobile computing device to identify, via a system service list data representing the updated installed application list; and receiving the updated installed application list from the mobile computing device based on the system service list data identified via the mobile computing device.
 22. The computer-implemented method according to claim 19, wherein retrieving the updated installed application list comprises: causing a mobile computing device to generate a link resolution data set by attempting access of each application program link in an application program link list, wherein the link resolution data set comprises data indicative of a resolved state or an unresolved state associated with each particular application program in the application program link list based on the attempted access of each particular application program; and receiving the updated installed application list from the mobile computing device based on each resolved state in the link resolution data set
 23. The computer-implemented method according to claim 19, wherein generating the profile category set based at least in part on the application program characteristic set comprises: identifying a first application program characteristic from the application program characteristic set, the first application program characteristic corresponding to a first application of the installed application program set; generating a first profile characteristic based on the first application program characteristic; and generating at least one profile category of the profile category set based at least in part on the first profile characteristic.
 24. The computer-implemented method according to claim 19, wherein generating the profile category set based at least in part on the application program characteristic set comprises: identifying a plurality of application program characteristics from the application program characteristic set, the plurality of application program characteristics corresponding to a plurality of application programs of the installed application program set; generating a plurality of profile characteristics based on the plurality of application program characteristics; and generating at least one profile category of the profile category set based at least in part on the profile characteristics.
 25. The computer-implemented method according to claim 19, wherein updating the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application comprises: generating an updated profile characteristic set based at least in part on the second application program characteristic set; generating an updated profile category based at least in part on the updated profile characteristic set; and updating the profile category set to include the updated profile category.
 26. A computer program product comprising at least one non-transitory computer-readable storage medium having computer program code stored thereon that, in execution with at least one processor, configures the computer program product for: generating an application program characteristic set for each application program of a first installed application program set; generating a profile category set based at least in part on the application program characteristic set; retrieving an updated installed application list indicating a second installed application program set; determining at least one uninstalled application based at least in part on a comparison of the first installed application program set and the second installed application program set; generating a second application program characteristic set associated with the at least one uninstalled application; and updating the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application.
 27. The computer program product according to claim 26, wherein retrieving the updated installed application list comprises: causing a mobile computing device to detect a list of processes running on the mobile computing device, the list of processes running on the mobile computing device representing the updated installed application list; and receiving the updated installed application list from the mobile computing device based on the list of processes running on the mobile computing device.
 28. The computer program product according to claim 26, wherein retrieving the updated installed application list comprises: causing a mobile computing device to identify, via a system service list data representing the updated installed application list; and receiving the updated installed application list from the mobile computing device based on the system service list data identified via the mobile computing device.
 29. The computer program product according to claim 26, wherein generating the profile category set based at least in part on the application program characteristic set comprises: identifying a first application program characteristic from the application program characteristic set, the first application program characteristic corresponding to a first application of the installed application program set; generating a first profile characteristic based on the first application program characteristic; and generating at least one profile category of the profile category set based at least in part on the first profile characteristic.
 30. The computer program product according to claim 26, wherein generating the profile category set based at least in part on the application program characteristic set comprises: identifying a plurality of application program characteristics from the application program characteristic set, the plurality of application program characteristics corresponding to a plurality of application programs of the installed application program set; generating a plurality of profile characteristics based on the plurality of application program characteristics; and generating at least one profile category of the profile category set based at least in part on the profile characteristics.
 31. The computer program product according to claim 26, wherein updating the profile category set based at least in part on the second application program characteristic set associated with the at least one uninstalled application comprises: generating an updated profile characteristic set based at least in part on the second application program characteristic set; generating an updated profile category based at least in part on the updated profile characteristic set; and updating the profile category set to include the updated profile category. 